
#ifndef SUNPOSITION_H
#define SUNPOSITION_H

/**
 * ？？？？DNI与irradiance的区别？？？

*/

#include <utils/ParaUtils.h>

#include <boost/describe.hpp>

namespace solar
{
    class SunPosition
    {
        public:
            SunPosition(double azimuth = 0, double elevation = 90, double dni = 1000,
                        bool trackable = true)
                : azimuth_(azimuth), elevation_(elevation), dni_(dni), trackable_(trackable)
            {
            }
#include <utils/class_name.inc>

        private:
            double azimuth_;   // 方位角
            double elevation_; // 高度角
            double dni_;       // 辐射强度
            bool trackable_;   // 是否可追踪

            BOOST_DESCRIBE_CLASS(SunPosition, (), (), (), (azimuth_, elevation_, dni_, trackable_))
    };

} // namespace solar
#define CURRENT_CLASS_NAME SunPosition
#include <utils/class_describe_header.inc>
SOLAR_DESCRIBE_CLASS(SunPosition, (), (), (), (azimuth_, elevation_, dni_, trackable_))
#endif // SUNPOSITION_H
